package auth

import (
	"crypto/md5"
	"fmt"
	"os"
	"runtime"
)

// MachineInfo 机器信息管理
type MachineInfo struct{}

// NewMachineInfo 创建机器信息实例
func NewMachineInfo() *MachineInfo {
	return &MachineInfo{}
}

// GetUUID 获取机器唯一标识（机器码）
// 基于主机名和平台生成稳定的机器码
func (m *MachineInfo) GetUUID() string {
	hostname, _ := os.Hostname()
	machineId := fmt.Sprintf("%s-%s-%s", hostname, runtime.GOOS, runtime.GOARCH)
	hash := md5.Sum([]byte(machineId))
	return fmt.Sprintf("%x", hash)
}
